Query and summarize the installed RGB spaces. The RGB spaces are stored in a dictionary, which comes with 8 RGB spaces pre-installed. These spaces are: sRGB, AdobeRGB, ProPhotoRGB, AppleRGB, BT.709, BT.2020, 240M, and HD+2.4.
summaryRGB( verbosity=1 )getRGB( space )
getWhiteXYZ( space, which='scene' )
summaryRGB()
, with the default verbosity=1
, returns a data.frame
with a row for each RGB space.
The row contains primary, whitepoint, and transfer function information for each space.
The primary/whitepoint data is for both scene and display; all the data is numerical and the columns are labeled.
There are 22 columns so the display is very wide.
The transfer function data is a very short string.
If the OETF is classical (pure 1/\(\gamma\) power law), the string is 1/\(\gamma\).
If the OETF is not classical, the string is 1/~\(\gamma\),
where \(\gamma\) is the best-fit (or approximate or effective) \(\gamma\) to the OETF in the \(L^1\)-norm.
Similarly, if the EOTF is classical (pure \(\gamma\) power law) the string is \(\gamma\),
and if the EOTF is not classical the string is ~\(\gamma\).
The OOTF is the quotient (to 2 decimal places) of the gammas of EOTF and OETF
(either true gamma or best-fit gamma).
If either gamma is best-fit then the string is preceede by a '~'
,
which means effective.
If the TransferFunction
has dimension 1, but the domain and range are not the interval [0,1],
the string is '1D'
.
If the TransferFunction
has dimension 3, the string is '3D'
.
If verbosity=0
, summaryRGB()
returns the names of all the RGB spaces.
getRGB()
returns a list with these items:
space | the full and original name of the RGB space |
scene | a list with items primaries , whiteXYZ , RGB2XYZ , and XYZ2RGB |
display | a list with items primaries , whiteXYZ , RGB2XYZ , and XYZ2RGB |
EOTF | Electro-Optical Transfer Function |
OETF | Opto-Electronic Transfer Function |
OOTF | Opto-Optical Transfer Function, and numerically equal to OETF*EOTF |
The items in the lists scene
and display
are
primaries | 4x2 matrix with the xy chromaticities of the RGB primaries and white |
whiteXYZ | XYZ of the display white point, which maps to RGB=(1,1,1) |
RGB2XYZ | 3x3 matrix taking RGB to XYZ |
XYZ2RGB | 3x3 matrix taking XYZ to RGB |
All transfer functions are actual TransferFunctions
objects,
and not the numerical exponent or character string name.
They are suitable for plotting with plot.TransferFunction()
; see the Examples.
In case of error, getRGB()
returns NULL.
getWhiteXYZ()
returns a numeric 3-vector with the XYZ of the whitepoint of the scene or the display.
In case of error it returns NULL
.
name of the RGB space to query. The name matching is partial and case-insensitive.
an integer that controls the return value of summaryRGB()
, see Value.
the source of the whitepoint, either 'scene'
or 'display'
.
Matching is partial and case-insensitive.
The function getWhiteXYZ()
is provided because some applications only need the whitepoint
for chromatic adaptation purposes, and this function is faster than getRGB()
.
Lindbloom, Bruce. RGB/XYZ Matrices. http://brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
installRGB()
,
plot.TransferFunction()
# make plot comparing three EOTFs
plot( getRGB('sRGB')$EOTF, col='black' )
plot( getRGB('BT.709')$EOTF, col='blue', add=TRUE )
plot( getRGB('ProPhotoRGB')$EOTF, col='red', add=TRUE )
Run the code above in your browser using DataLab